PyCon JP 2024
夕方に資料とサンプルコードの仕上げ。ギリギリまにあったー
10:30~12:00
今年は現金渡しを減らして時間枠を1時間に限定したけど、準備がやっぱりけっこう大変
10名弱への現金渡しのため、セブンATMで現金用意。セブンATM有り難い~
12:00~12:45
一般社団法人PyCon JP Association 公開ミーティング
組織運営、2023年の予算決算、2024年の予算、質疑応答。
質疑応答は10個以上質問がありました。ありがたい~
12:45~13:30
送金失敗するケースが心配なので、可能な限り当日中に送りたいのでした
13:50~14:30
トーク採用されました & 発表してきました。
トーク時間ちょうど30分でおわり。
5分の質疑応答。時間内、終了後、とで2つ質問いただきました
Q1. コンテキストの構造化データを渡した先が別言語の場合、どうやって構造化ログとして出力している?LambdaがNodeでどうやってログを出そうかと困っている。
A: Nodeの、ライブラリ名忘れましたが、たぶん有名なやつの出力処理をいじってだしてます。
14:40~16:00
送金元となるPayPalやWiseなどに現金を入れる必要がある & 平日15時をすぎると難しくなる!と気付いて慌てて色々準備
今日用意した現金をATMに戻し
10:20~10:50
稲田さんのトーク
Q1. (PHPコミッターの方)UTF8化が求められているが、アジア圏でも微妙に違いがあり、乗り越えるのが難しい。GBKでどう乗り越えましたか?
A. 実は乗り越えていない。コミッターに中国圏の方がいないので、実はGBKで動かないとかあるかも。それでも環境変数 PYTHONWARNDEFAULTENCODING=1 でWARN出せるので使って報告してもらうのがよいとおもう
質問者: 中国で2021年に新しいエンコーディングが政府命令で強制されたので使わざるを得ないので、そこの影響がありそうと思ってます
Q2. PYTHONUTF8=1 移行期に使えば、移行後は
Q3. code-dev の方でUTF-8をちゃんと考えて扱える方はどのくらいいるのか?また、日本からそこに参加して協力する必要があればその方法を知りたい
A. codecsがあるけど、そこを積極的にメンテしてる人はほとんどいない。作った人がコアにまだいるので、その人かもう一人くらい。
A. みんなエンコーディングに興味があって議論が活発だったわけではなく、Py2/Py3非互換性問題が再発することを恐れている
A. python-discussが方向窓口になると思う
質問タイムアップだったので個人的に聞きに行った
Q4. どのくらいの時間使ってる?
A. UTF-8 まわりの議論に参加しているときは業務中ずっとそれをやってました
A. (補足)業務時間のうちどのくらいを使って良いか決まってるわけではないので、時期によって使う時間が異なる
Q5. どうやってスレッドを読み込んでる?
A. けっこう大変。英語ネイティブじゃないので読んで理解して返事をするサイクルに時間がかかる
A. 「互換性の話に返事をしてこっちに返事しないのは何でだ!」と怒られることも...(たいへんだ
A. そういうときは、「英語時間かかるんだよまって」と書いたりしてた
15:30~16:00
奥寺さんのトーク
Lambda + SQS でメール送信するのにPythonのサポートライブラリが便利!
非機能要件の対応が外部ライブラリに任せられるのはとても助かった
Q1. エラーハンドリングで、失敗したメッセージをQueueにもどして再実行するところで、本質的にぜったい失敗するものだった場合、無限メッセージループが発生するとおもいますが、どうやって対策しますか?
A. デッドレターキューで対策できます。良い質問ありがとうございます。じゃあ話しますね(話したかった感がでてるw)
Q2. デッドレターキューに入ってしまったメッセージはどう処理していますか?手動ですか?
A. 自動では難しいので、対応手順書を作りました。
A. 戻していいものか、そもそも動かなかったのはなぜか、を確認します
終わったイベントの「明日開催」メールが後から来ても困る
Q3. この移行にどのくらいの工数がかかりました?
1名3カ月(3人月)くらいかかりました
16:20~16:50
shimizukawa.icon あれ聞き間違えた?インターフェースがユーザーフレンドリー、という話が後で出てきた
API的にはnurseryという名前はフレンドリーだけど、API構造はTaskGroupと一緒、ということだった
これを2017年時点で実装していたのがTrioだけだった
2021年以降、だんだん実装されてきている
Python-3.11 でも実装されている asyncio.TaskGroup
インターフェースがユーザーフレンドリー
GitHubサンプル ソース
Q1. TrioのPythonバージョンのカバー範囲は? (by @aodag) Q. asyncio の機能を使おうとするとPython幾つ以降じゃないとできない、などがある
A. LTSは把握していないですが、base exception group の対応がPython 3.11向けに入ったことにより、3.11より前向けのTrioと、3.11以降向けのTrioに分かれてしまった
Q2. Trioで1秒 タイムアウトしたらちゃんと1秒でwith区抜けますか?
A. 試したことがないので判りません
Q3. Trioを使ってない理由が、uv loop を使えないため
A. FastAPIでTrioを使うとuv loopが使えないので、速度面の課題がでてくる
Q4. 非同期のテストをどうやってテストしてますか?
A. デバイス内のマイクロサービスを個別に単体テストしています。そのうえで、アニメーターさんが目視確認してます
質疑応答時間外で聞きました
Q5. キャンセルされて処理が途中終了したら、後処理できる?
A. 子スレッドではできません。
A. キャンセルを指示した親スレッド側に例外が上がってくるので、その例外を捉まえて後処理はできます。
A. あるいは、子スレッドでフラグを定期的にみて自分で終了するように実装すればできます
17:30~18:20
石本さんのキーノート
Python 1.3の頃
ng "hello".upper()
ok string.upper("hello")
shimizukawa.icon 2系から使い始めた自分としては、stringモジュールの存在意義がよく分からなかったな
2000年から2010年頃までには、numpy, scikit-learnなどの科学技術計算系ライブラリが出そろった。
shimizukawa.icon そんなに早かったのか。
numpyは最初Python本体のライブラリとして開発が始まったが、ガタイが大きすぎるので同梱無理だねとなって独立開発された
shimizukawa.icon へー知らなかった!
Q1. もしPythonじゃなかったらなにをやってました?
A. Objective-C かなあ.. 選ばなくてよかったなと思う
Q2 shimizukawa.icon好きな例外は?
A. 例外すきな人はいないんじゃないでしょうか。当時は例外オブジェクトというのはなくて、文字列で例外をだしてました。文字列だとちょっと文字が違えば捕まえられないので、そこでハマったりしていたので、例外使えねーな、と思ったりして今日の悪口スライドに入れる候補にしてました。
shimizukawa.icon Guidoが KeyboardInterrupt が好きだ、という話を聞きまして
A. ああ、たしかにシステム系の例外は良いですね。SystemExitのようなものを例外処理にして扱えるようにしたのは良かったと思います。Unixだとsignal飛ばすとプロセスをガッと落としちゃうけど。
Q3. 好きなPEPは
Q4. Pythonに期待することは?
A. Pythonは特別な美点はない。良かったのはバランス感覚。字体に合わせたバランスをうまく育てていってほしいなと思います
Q5. 日本語対応についてPythonは早かったと思いますか?
A. あらゆるプログラム言語で日本語って無いものにされてましたよね。OSSで日本語対応している言語というのは無かったと思う。日本語を扱うにはパッチをあてるのが一般的だった。PerlもJPerlとかを作ってる人がいた。
A. 日本語が扱えるようになってきたのは、Unicodeが普及してきたWindows NTの頃から。Pythonの対応が早かったかというと、まあこんなもんかなというタイミングだったと思う
Q6. 特に印象に残っているパッケージやモジュールは?
A. PIL ( Pillow ) が初期の頃からあったのは印象にのこっている。けっこう速く動作してびっくりした。 Q7. 日本のPythonistaが世界にもっとビジブルになるにはどうすれば良いと思う?
A. 言語の壁があるのが難しいなと思う。AIによる翻訳などの力で変わるかもしれない?